Conventional computer systems include a variety of peripheral and memory devices that communicate with the systems's central processing unit (CPU) or chip-set processor via an Industry Standard Architecture (ISA) bus or an Expansion bus (X-bus). The CPU or chip-set processor includes a large amount of pins (e.g., approximately 50-70) and associated circuitry to support the ISA bus or X-bus signals that are used to interface the CPU or chip-set processor with the peripheral devices including input/output(I/O) or I/O controllers, floppy disk controller, keyboard controllers, and memory devices such as non-volatile memory devices that store, for example basis input-output system (BIOS) information.
The large number of pins needed to support the ISA bus and X-bus standards generally increase the overall system cost. For example, larger packages are required for a CPU or chip-set. The development of the low pin count (LPC) bus has obviated to some extent the problem mentioned above. The LPC bus includes general purpose signal lines that carry substantially all time-multiplexed address, data and control information to implement memory, I/O, and bus transactions between the CPU and other system devices.
Presently there are no other peripheral components that are connected to the LPC bus because the LPC bus is designed to be a “local bus” servicing the chip-set. The LPC bus does not provide for expandability for add-on features like that provided for by a Peripheral Component Interconnect (PCI) (e.g., PCI Local Bus Specification, version 2.1, a copy of which may be obtained from the PCI Special Interest Group) bus for example. In general the LPC bus may be limited to being coupled to a system bus interface controller and one or more memory devices. As used herein, the term “firmware hub” refers to the memory devices coupled to a LPC bus.
The firmware in the firmware hub is a computer program including a series of instructions or statements arranged in a specific sequence and written in a language executable by the processor of the computing device to achieve a certain result.
Firmware, as used herein, refers to those computer programs whose instructions and/or data are stored and maintained permanently in the computing device without the need for the continued application of power. One such computer program is the basic input/output system (BIOS). These computer programs, like the BIOS are typically stored in non-volatile read only memory (ROM), programmable read only memory (PROM) or erasable programmable read only memory (EPROM). Use of a non-volatile memory obviates the need to reload the programming into the computing device in the event of a power loss or turn-off.
Erasable programmable read only memory (EEPROM) does not require replacing memory chips storing firmware when programming corrections or upgrades are required. The EEPROM includes a read only memory device whose individual data storage locations (addresses) are erasable and can be reprogrammed by applying certain electrical signals to the chip. New firmware can thus be stored in the chip without removing the chip from the computing device. However, in situations where the computing device's firmware has been corrupted to an extent that the computing device is unable to boot-up, the above mentioned method of supplying new firmware is not available. In these cases, there is no other solution but to replace the firmware chip.
In view of the foregoing, it can be appreciated that a substantial need exists for a method and apparatus for low pin count firmware hub recovery.